<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Libro_exe( $this );
    
	class Libro_exe extends Exe
	{
	function Libro_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_LIBRO
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Libro_frm' );
			extract( $oForm->getFieldArray() );
			// Busca el siguiente id
			$ncLibro      = $this->oDatabase->nextKey("btLibro", "ncLibro"  );
			$this->oDatabase->insert("btLibro"
								, "ncLibro", $ncLibro
								, "cdLibro", $cdLibro
								, "nEdicion", $nEdicion
								, "nqTirada", $nqTirada
								, "cPalabrasClave", $cPalabrasClave
								, "cSubserie", $cSubserie 
								, "cISBN17", $cISBN17
								, "cEAN", $cEAN 
								, "cSubtitulo", $cSubtitulo
								, "dPublicacion", $dPublicacion 
								, "nAncho", $nAncho
								, "nLargo", $nLargo
								, "nPeso", $nPeso
								, "dImpresion", $dImpresion
								, "nqPaginas", $nqPaginas
								, "nAlto", $nAlto
								, "nqGramosInterior", $nqGramosInterior
								, "nqGramosTapa", $nqGramosTapa
								, "bDominioPublico", $bDominioPublico			
								,"dAlta", date('Y-m-d')
								,"ncAlta", $this->oModule->oUserSession->getUser()								
								);

			// Agrega los Idiomas
			/*
				$aIdioma = $oForm->aFields['aIdiomas']->getValue();
				foreach ( $aIdioma as $ncIdioma )
				{
					$this->oDatabase->insert( "btLibroIdioma",
											"ncIdioma", $ncIdioma,
											"ncLibro", $ncLibro );
				}
			*/

			$this->setInputData( $ncLibro, $cdLibro );
		}
		
		// ELIMINAR_LIBRO
		function delete()
		{
			$ncLibro = getParam( 'ncLibro' );
			$this->oDatabase->delete("btLibro","ncLibro", $ncLibro );
		}
		
		// MODIFICAR_LIBRO
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Libro_frm' );
			extract( $oForm->getFieldArray() );


			$cISBN = $cISBN17 ?  $cISBN17: $cISBN13;
			$aISBN = explode ('-', $cISBN);
			if ( $aISBN[0] == 978 && ($aISBN[1] == 987 || $aISBN[1] == 950 ) ) $cSello = $aISBN[2];
			if ( $aISBN[0] == 987 || $aISBN[0] == 950 ) $cSello = $aISBN[1];
			$cSello =  trim($cSello);
			$cArchivo = str_replace('-', '', $cISBN) . ".jpg";
			$oInputFoto		= new InputPhoto( "Archivo", "cArchivo", '', 240, 360, PATH_FILES . "imagenes_libro/");			
			//$oInputFoto->setDefaultValue(true, PATH_FILES . "imagenes_libro/" .$cArchivo);			
			$oInputFoto->crop(true, "files/imagenes_libro/$cSello/" .$cArchivo);			

			$this->oDatabase->update("btLibro"
							, "cdLibro", $cdLibro
							, "nEdicion", $nEdicion
							, "nqTirada", $nqTirada
							, "cPalabrasClave", $cPalabrasClave
							, "cSubserie", $cSubserie 
							, "cISBN17", $cISBN17
							, "cEAN", $cEAN 
							, "cSubtitulo", $cSubtitulo
							, "dPublicacion", $dPublicacion 
							, "nAncho", $nAncho
							, "nLargo", $nLargo
							, "nPeso", $nPeso
							, "dImpresion", $dImpresion
							, "nqPaginas", $nqPaginas
							, "nAlto", $nAlto
							, "nqGramosInterior", $nqGramosInterior
							, "nqGramosTapa", $nqGramosTapa
							, "bDominioPublico", $bDominioPublico			
							,"dModificacion", date('Y-m-d')
							,"ncModificacion", $this->oModule->oUserSession->getUser()								
								,"WHERE"
								 ,"ncLibro", $ncLibro);
			/* Agrega los Idiomas
				$bOk = $this->oDatabase->delete( "btLibroIdioma", "ncLibro", $ncLibro );
				$aIdioma = $oForm->aFields['aIdiomas']->getValue();
				foreach ( $aIdioma as $ncIdioma )
				{
					$this->oDatabase->insert( "btLibroIdioma",
											"ncIdioma", $ncIdioma,
											"ncLibro", $ncLibro );
				}
			*/
			$this->setInputData( $ncLibro, $cdLibro );
		}
	}
?>